package com.example.jwtauthdemo.service;

import com.example.jwtauthdemo.model.User;
import java.util.Map;
import java.util.Optional;

public interface UserService {
    
    /**
     * 获取用户实名认证状态
     * @param userId 用户ID
     * @return 包含实名认证状态的Map对象
     */
    Map<String, Object> getRealNameAuthStatus(Long userId);
    
    /**
     * 根据ID查询用户
     * @param id 用户ID
     * @return 用户信息
     */
    Optional<User> findById(Long id);
    
    /**
     * 更改用户密码
     * @param userId 用户ID
     * @param oldPassword 原密码
     * @param newPassword 新密码
     * @return 是否修改成功
     */
    boolean changePassword(Long userId, String oldPassword, String newPassword);
    
    /**
     * 获取用户真实姓名
     * @param userId 用户ID
     * @return 用户真实姓名，如果不存在返回null
     */
    String getRealNameById(Long userId);
    
    /**
     * 更新用户信息
     * @param user 用户信息
     * @return 是否更新成功
     */
    boolean updateUser(User user);
}